home *** CD-ROM | disk | FTP | other *** search
/ CD ROM Paradise Collection 4 / CD ROM Paradise Collection 4 1995 Nov.iso / os2 / adaptor.zip / ADAPT.ZIP / adaptor / examples / purdue / prob01.fcm next >
Text File  |  1993-06-26  |  2KB  |  72 lines

  1.       PROGRAM PROB01
  2. C
  3. C     PROBLEM 1
  4. C
  5. C  REFERENCE:  PROBLEMS TO TEST PARALLEL AND VECTOR LANGUAGES
  6. C              CSD-TR 516, COMPUTER SCIENCE, PURDUE UNIVERSITY
  7. C              JOHN R. RICE, MAY 1, 1985
  8. C
  9. C              REVISED BY JOHN R. RICE AND J. JING, OCT. 1, 1990
  10. C
  11. C
  12. C      *************************************************
  13. C      *      Adapted for FORTRAN D benchmarking       *
  14. C      *    by  T. HAUPT  (haupt@sccs.npac.syr.edu)    *
  15. C      *                                               *
  16. C      *    Northeast Parallel Architectures Center    *
  17. C      *   at Syracuse University, Syracuse, NY, USA   *
  18. C      *************************************************
  19. C
  20. C
  21. C       VERSION SIMD/CM2-1.00
  22. C       ==================================================
  23. C
  24.       INCLUDE '/usr/include/cm/paris-configuration-fort.h'
  25.       INTEGER KASES,K,NK
  26.       PARAMETER (KASES=6)
  27.       INTEGER N(KASES)
  28. CMF$  LAYOUT N (:serial)
  29.       REAL TN
  30.       REAL A,B,H
  31.       DATA A,B / 0.0,1.0 /
  32.       DATA N /  8192, 65536,
  33.      X          131072, 262144, 524288, 1048576/
  34. C
  35. C               LOOP OVER KASES
  36. C
  37.       DO  K = 1, KASES
  38.          NK=N(K)
  39.       CALL CM_TIMER_CLEAR(0)
  40.       CALL CM_TIMER_START(0)
  41.          DO MANY=1,100
  42.  
  43.          H = (B-A)/(NK-1)
  44.          CALL DOIT(NK-1,A,H,TN)
  45.          TN = H*((EXP(A)+EXP(B))/2.+TN)
  46.  
  47.          ENDDO
  48.       CALL CM_TIMER_STOP(0)
  49.  
  50.          PRINT 30,A,B,NK
  51.    30    FORMAT ('PROBLEM 1 WITH A,B,N = ',2F10.3,5X,I8)
  52.          PRINT 40,TN
  53.    40    FORMAT ('GIVES TN =',F10.6)
  54.  
  55.       CALL CM_TIMER_PRINT(0)
  56.  
  57.       ENDDO
  58.  
  59.       END
  60.  
  61.  
  62.  
  63.       SUBROUTINE DOIT(N,A,H,FSUM)
  64.       INTEGER N
  65.       REAL A,H,FSUM
  66.       REAL R(N)
  67.  
  68.       R = EXP (A + H * [1:N])
  69.       FSUM=SUM(R)
  70.  
  71.       END
  72.